<?php

class statTable extends Doctrine_Table
{
	
	public static function getInstance()
	{
		return Doctrine_Core::getTable('stat');
	}
	/**
	 * Метод для получения статистики
	 * Статистика за сегодняшний день - последняя запись в этой таблице
	 * Каждый день необходимо обновлять статистику, таким образом, эта таблица так же отображает 
	 * рост статистических показателей 
	 * @return Doctrine_Record
	 */
	function getStatistic()
	{
		return $this->createQuery("dctrn_find")->limit(1)->orderBy("id DESC")->fetchOne(array ());
	}
	
	/**
	 * Метод для увеличения статистических данных в главной таблице статистики
	 * @param int $users
	 * @param int $comments
	 */
	public function multiplyStatistic($users = 0, $comments = 0)
	{
		$stat = $this->getStatistic();
		$stat->set("users", $stat->getUsers() + $users);
		$stat->set("comments", $stat->getComments() + $comments);
		$stat->save();
	}
	/**
	 * Метод для обновления статистики.
	 * Вообще, это должно происходить автоматически раз в сутки
	 */
	function refreshStatistic()
	{
		// Get previous statistic
		$stat = $this->getStatistic();
		if(strtotime(date("Y-m-d", strtotime($stat->getCreatedAt()))) >= strtotime(date("Y-m-d")))
			return false;
		
		$st = new stat();
		$st->set("users", $stat->getUsers());
		$st->set('comments', $stat->getComments());
		$st->set('comments_yesterday', $stat->getComments() - $stat->getCommentsYesterday());
		$st->save();
		
		$this->createQuery()->update("post")->set("comments_yesterday", "comments - comments_yesterday")->execute();
	}
}